package com.zlp.stack;


import java.util.Random;

/**
 * 演示垃圾收集
 */
public class GCdemo_1 {

    /**
     * -Xms10m -Xmn10m -XX:+PrintGCDetails -XX:+PrintCommandLineFlags -XX:+UseSerialGC  serial与serial old组合 DefNew Tenured
     * -Xms10m -Xmn10m -XX:+PrintGCDetails -XX:+PrintCommandLineFlags -XX:+UseParNewGC  parNew与serial old组合 jdk8以后该组合被废弃
     * -Xms10m -Xmn10m -XX:+PrintGCDetails -XX:+PrintCommandLineFlags -XX:+UseParallelGC Parallel scavenge与Parallel Old组合
     * 吞吐量优先的收集器组合，有自调节策略，适用于计算多交互少的系统
     * -Xms10m -Xmn10m -XX:+PrintGCDetails -XX:+PrintCommandLineFlags -XX:+UseConcMarkSweepGC
     * cms收集器，一种获取最短停顿时间为目标的收集器，重视服务器响应速度，适合互联网应用
     * -Xms10m -Xmn10m -XX:+PrintGCDetails -XX:+PrintCommandLineFlags -XX:+UseG1GC
     * G1收集器开创了面向局部收集的设计思路和基于region的内存布局形式，他的衡量标准不再是它属于哪个分代，而是那块内存的垃圾最多，回收效益最大，这就是G1的Mixed GC模式
     * 过程：初始标记 -> 并发标记 -> 最终标记 -> 筛选回收
     * 设计思路：G1收集器会跟踪各个region里面的垃圾价值的大小，并维护一个优先级，然后根据用户设定允许的停顿时间内，去回收价值最大的region
     *
     * 
     * @param args
     */
    public static void main(String[] args) {
        System.out.println("***********GCDemo hello");
        try {
            String str = "GC Test...";
            while (true){
                str += str + new Random().nextInt(77777);
                str.intern();
            }
        }catch (Throwable t){
            t.printStackTrace();
        }
    }



}
